System and method for adaptive programming of a remote control

ABSTRACT

A method and system for adaptively configuring a remote control includes analyzing a log of events, maintained by the remote control, which indicate how the remote control and the devices it controls are used by a user. Once the analysis is performed, the system and method can suggest alternative configurations of the remote control to the user. The range and type of alternative configurations is not particularly limited and can include changing which devices are employed for various user activities and/or how those activities are performed, the placement and hierarchy of commands in a menu tree and/or troubleshooting and set up configurations. The analysis can be performed either partially or totally within the remote control, or at, or in conjunction with, a service to which the remote control connects through a network.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is related to and claims priority from U.S. ProvisionalApplication No. 60/673,479, filed Apr. 20, 2005, and is fullyincorporated herein by reference for all purposes.

FIELD OF THE INVENTION

The present invention relates to remote controls. More specifically, thepresent invention relates to remote controls wherein the specificbehavior and/or operation of the remote control can adapt based upon howthe remote is used by a user.

BACKGROUND OF THE INVENTION

Remote controls for consumer electronics devices have increased incomplexity, to match the many inputs and options available to controldevices, and in ubiquity as many consumer electronics devices come withor support remote controls.

The assignee of the present invention offers a unique remote control,sold under the Harmony™ brand, which provides for enhanced control ofconsumer electronics devices and, more importantly, systems of suchdevices. For example, a home theatre system typically includes atelevision, a DVD player, and a surround sound system. More advancedhome theatre systems can further include room lighting control systems,environmental controls (HVAC) for the room, motorized viewing screen(for projection televisions) and/or motorized window curtain systems.

Typically all of these devices can be controlled via remote controlssupplied with the devices and, preferably, all of these devices can becontrolled with a single remote which is sold with a database of thenecessary commands for each device or which can learn the necessarycommands from the OEM remote controls sold with the devices.

While such systems have gained wide popularity, performing an activitysuch as watching a DVD can require the user to select twenty, or more,commands to activate the necessary devices and configure them properly.For example, the television set must be turned on, commanded to use theinput from the DVD player, the DVD player must be turned on andcommanded to start playing the DVD, the surround sound system must beturned on and commanded to use the DVD player output as an input, etc.Even when the user has a single remote control which can generate all ofthe necessary command signals, it can be difficult and/or tedious tooperate the remote control to output all of the necessary commands inthe correct sequence.

Further, once the devices in the system have been properly configuredfor an activity, control of the system is often non-intuitive. Forexample, pressing the button on the remote control to increase thevolume of the DVD being watched may result in the volume of thetelevision set being incorrectly increased, rather than the volume ofthe surround sound system correctly being increased.

Prior art attempts to address this problem have employed programmingcollections of commands, typically referred to as “macros”, into theremote control. Once programmed, ideally the user can press a singlebutton on the remote to, for example, turn on and configure the systemto perform an activity such as watch a DVD movie as the remote will“play” the macro and transmit each of the recorded commands in turn.

While such macro systems can improve the usability of complex systems ofconsumer electronics devices, serious problems exist with such macrosystems. One problem is that it can be difficult for many people tocreate the necessary macros as the macros can be quite complex and manyconsumers pay installation contractors to program an appropriate set ofmacros into their remotes.

A more serious problem is that such macro systems are “state-less” inthat the macro is recorded based upon an assumption of the operatingstate of the devices to be controlled by the macro and deviations in anydevice from its assumed state can result in the failure of the macro toproperly configure the system. For example, if a television set has a“toggle” type command for its power control (i.e., each time a POWERcommand is sent to the television, the television turns OFF, if it isON, or turns ON if it is OFF), then a macro to watch a DVD movie mustinclude an assumption that the TV is in a given state, such as ON. If amacro is recorded to watch a DVD movie and the remote control assumesthe TV is ON prior to execution of the macro, and if the TV is in factOFF when the macro is executed, an inoperative result occurs as theremote will not transmit a POWER command to the TV and the TV will notbe turned ON. In fact, this inoperative result typically cannot becorrected merely by turning the TV ON, because with the TV OFF when themacro executed, the TV will have ignored the other commands sent to itby the remote to, for example, change the input the TV is currentlyusing to the input connected to the DVD player, etc.

This can result in ludicrous systems wherein the user must execute onemacro to watch a DVD if their system is presently OFF and another macroto watch a DVD if their system is ON and presently configured to watch atelevision program and another macro to watch a DVD if their system ispresently ON and configured to play a CD, etc., or other non-intuitivesystems wherein the system must be returned to a predefinedconfiguration before a macro is executed to configure the system foranother activity.

To address these disadvantages and others, the above-mentioned Harmony™remotes employ a state-based strategy to control devices and employ aweb-based configuration method and system. The Harmony remotes store arepresentation of the current state of each device controlled by theremote and determine the commands which must be transmitted to eachdevice to change the overall state of the system from one state (e.g.,listen to CD) to another (e.g., watch a DVD).

The Harmony remotes employ an internet-based configuration method andsystem wherein the remote is connected, via the Internet, to a devicedatabase and a configuration compiler which, through an interactive webpage dialog/process with the user, programs the remote to control theuser's devices.

The Harmony remotes employ technologies described in U.S. Pat. No.6,784,805; published U.S. Application 2005/0052423; published U.S.Application 2005/0030196; published U.S. Application 2002/0056084; andpublished U.S. Application 200/0045819, all to Harris et al., allassigned to the assignee of the present invention, and the contents ofthis patent and these published applications are incorporated herein byreference.

While the Harmony™ remotes offer many advantages over prior art remotes,it can be difficult to troubleshoot the configuration process and/or itcan be difficult for a user to customize the operation and arrangementof their remote.

It is desired to have a system and method that can improve the abilityto troubleshoot the configuration of a remote control and/or toadaptively configure the remote control to correspond more closely tohow the remote is typically used.

BRIEF SUMMARY OF THE INVENTION

It is an object of the present invention to provide a novel method andsystem for adaptively configuring a remote control which obviates ormitigates at least one disadvantage of the prior art.

According to a first embodiment of the present invention, a remotecontrol system is provided that includes a remote control operable tolog and store user initiated events relating to the control of deviceswith the remote control, the remote control operating in accordance witha configuration data set stored in the remote control; a device databasestoring identifications of devices to be controlled by the remotecontrol and the command sets for those devices; an analysis moduleoperable to analyze the log of events stored by the remote control toidentify one or more patterns of interest in the logged use of theremote control by the user; and a configuration utility operable withthe device database and the analysis module to create a configurationdata set to operate the remote control in accordance with at least oneidentified pattern of interest.

Preferably, in response to the results produced by the analysis module,the configuration utility conducts an interactive dialog with the useras to whether they would like a suggested change in the operation of theremote control to be implemented and the configuration utility willeffect the change if the user responds accordingly.

According to another embodiment of the present invention, a method isprovided for adaptively configuring a remote control to operate at leastone device. The method includes identifying to a configuration utilitythe at least one device to be controlled by the remote control, andretrieving from a database of command sets for devices, the command setand capabilities of the identified at least one device. A configurationdata set is created for operating the remote control to control thedevice using the retrieved command set and transferring thatconfiguration data set to the remote control. The remote control is usedto operate the at least one device and for storing a log of each eventrelating to the control of the device. At select intervals, the storedlog of events is analyzed to identify at least one pattern of interestindicating how the user of the remote control operates the device. Theconfiguration data set is altered in response to the at least oneidentified pattern of interest. And the altered configuration data setis downloaded to the remote control to alter how the remote controloperates the at least one device.

The present invention provides a method and system for adaptivelyconfiguring a remote control. The system and method can analyze a log ofevents, maintained by the remote, which indicates how the remote and thedevices it controls are used by a user and can then suggest alternativeconfigurations of the remote to the user. The range and type ofalternative configurations is not particularly limited and can includechanging which devices are employed for various user activities and/orhow those activities are performed, the placement and hierarchy ofcommands in a menu tree and/or troubleshooting and set upconfigurations.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the present invention will now be described, byway of example only, with reference to the attached Figures, wherein:

FIG. 1 is a schematic diagram of a state-based remote control for usewith the present invention;

FIG. 2 is a schematic diagram of a device database, configurationutility and analysis module for use with the present invention;

FIG. 3 is a schematic diagram of a remote control in accordance withanother embodiment of present invention;

FIG. 4 is a schematic diagram of a remote control system that includes afirst remote control and a second remote control in accordance with oneembodiment of present invention;

FIG. 5 is a schematic diagram of a remote control system that includes afirst remote control and a second remote control in accordance withanother embodiment of present invention;

FIG. 6 is a schematic diagram of a remote control system that includes afirst remote control and a second remote control in accordance withanother embodiment of present invention; and

FIG. 7 is a schematic diagram of a remote control system according toanother embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

A remote control, similar to the above-described Harmony™ type of remotecontrols is indicated generally at 20 in FIG. 1. Remote control 20includes a microprocessor 24, which can be any suitable microprocessoror microcontroller as will be apparent to those of skill in the art.Preferably, microprocessor 24 is a low power microprocessor suitable foruse with battery powered devices such as remote control 20.

Microprocessor 24 and the other components, described below, withinremote control 20 are connected to a power supply 26, which can be abattery or other suitable power supply. Microprocessor 24 is furtherconnected to keypad 28, which includes a number of keys which can beactivated by a user to operate remote control 20, and to a display 32which can display text and/or graphics to the user of remote control 20.Keypad 28 can be any suitable keypad, as will occur to those of skill inthe art, including a membrane keypad or a touchscreen on display 32. Inthe latter case, display 32 is preferably an LCD display althoughdisplay 32 can be any other suitable type of display, such as an electroluminescent device, etc.

Preferably, one or more keys on keypad 28 are located adjacent display32 (or on display 32 in the case of keypad 28 being a touchscreen ondisplay 32). Depending upon the operating mode of remote control 20 andthe devices being controlled by it, these keys can have differentfunctions assigned to them by microprocessor 24 and appropriate textmessages or graphics can be displayed on display 32 adjacent those keysto obtain “soft” keys.

Remote control 20 further includes a non volatile memory 36 which isused to store the configuration for remote control 20, including theappropriate command sets for each device being controlled by remotecontrol 20, and the representations of the state of each device beingcontrolled by remote control 20. Memory 36 can be any suitable nonvolatile memory, such as battery backed-up static ROM, Flash ROM or amagnetic-based memory, such as a disc drive, etc.

Microprocessor 24 is also connected to at least one control signaltransmitter 40 and to a network interface device 44. Each control signaltransmitter 40 is operable to transmit the signals required to controlone or more of the devices being controlled with remote control 20.Control signal transmitters 40 can include infrared (IR) transmitters,radio frequency (RF) transmitters, such as Bluetooth or proprietary RFsystems, etc. which the devices being controlled with remote control 20are responsive to. It is contemplated that remote control 20 can beequipped with more than one control transmitter 40 when one or moredevices it is to control require control signals transmitted viadifferent transmission modalities (i.e., RF and IR). Remote control 20can also include one or more control signal receivers 42 to allow remotecontrol 20 to receive control signals from other remote controls tolearn new command signals, etc.

Network interface device 44 allows remote control 20 to be connected toa remote device database and configuration utility (e.g., a server, acomputer, etc.) via a network connection 48. Network interface device 44can be any suitable interface device for interfacing remote control 20to network connection 48, as will occur to those of skill in the art. Ina present embodiment, network interface device 44 is a USB transceiverand network connection 48 is a USB connection to a computing device (notshown), such as a personal computer, which is in turn connectable to theremote device database and configuration utility via the Internet. It isalso contemplated that network connection 48 can be a wireless link,such as a WiFi (IEEE 802.11x) connection, a Bluetooth link, etc. and, insuch cases network interface device 44 is selected to provide thenecessary connectivity, as will be apparent to those of skill in theart.

As will be apparent to those of skill in the art, the components ofremote control 20 can be separate devices or, as a result of large scaleintegration, microprocessor 24, non volatile memory 36 and networkinterface device 44 and other components of remote control 20 can beimplemented as a single integrated circuit device for considerations ofcost and reduced power consumption.

To setup remote control 20, the user connects remote control 20, vianetwork connection 48, to a remote device database 52 and aconfiguration utility 56, shown in FIG. 2. It is contemplated that inmany circumstances, remote control 20 will connect via networkconnection 48 to a personal computer (not shown) and the personalcomputer will connect, via the Internet or other network 60, to devicedatabase 52 and configuration utility 56, but it is also contemplatedthat remote control 20 can connect directly to network 60 and devicedatabase 52 and configuration utility 56.

As used herein the term device database is intended to comprise anysuitable means for storing relevant information, such as command setsand features, for devices to be controlled. Device databases can beimplemented with relational database systems, simple lookup tables, orany other appropriate means of storing device information as will beapparent to those of skill in the art.

As configuration utility 56 requires an interactive connection with theuser of remote control 20, a suitable web page or other interface can bedisplayed to the user on the personal computer, if remote control 20 wasconnected to network 60 via such a personal computer, or a suitableinterface can be displayed on display 32, if remote control 20 wasdirectly connected to network 60.

Once the user has connected to the configuration utility 56, the user isprompted to establish a user account, if this is the first time the userhas connected, or to log in to their existing account. Assuming this isthe first time the user has connected, after the account has been setup, the user is asked to input identifications, for example themanufacturer and model number, of each device they wish to control. Whenthe devices to be controlled have been identified by the user, thecapabilities and command sets of the devices are determined byconfiguration utility 56 and are available to configuration utility 56from device database 52. If one or more devices are not known to devicedatabase 52, the user can be prompted to perform a learning operationand suitable learning processes are well known to those of skill in theart and will not be described further herein.

Configuration utility 56 can then prompt the user to specify how theuser would prefer that various aspects of the system of devicescontrolled by remote control 20 operate. For example, the user can beasked whether they would prefer to use their surround sound system whenlistening to regular television programming, or whether they wouldprefer to just use the television's audio system.

Once configuration utility 56 has obtained any necessary user input,configuration utility 56 refers to device database 52 and creates aconfiguration data set comprising the IR (or other modality) command setfor each device to be controlled with remote control 20, an operatingprogram for remote control 20 and a state map for the system of devices.This configuration data set is then loaded into non volatile memory 36via network connection 48.

The above-described Harmony™ remotes operate substantially as describedin the paragraphs above. However, the consumer electronics devices andother devices to be controlled with remote control 20 can have broadfeature sets and systems of such devices can have many differentpossible operating states and it is difficult to have the configurationutility automatically create configuration data sets which match theuser's desires and/or needs. Further, the user themselves may not beaware of how they would prefer the system of their devices to operateand their usage patterns can change over time.

Accordingly, in the present invention, after remote control 20 has beenconfigured to control the system of the user's devices, remote control20 further operates to store a log of the events initiated by the userof remote control 20. Most events will represent keys pressed by theuser of remote control 20 and the time and date at which they werepressed and related state information, such as the television channelthey switched to, etc. As the context of the keys on keypad 28 canchange, depending upon the operating state of remote control 20 and thesystem of the user's devices, remote control 20 logs the function of thekey pressed, rather than (or in addition to) the actual keypad buttonpressed. As an example, a user can press a “PLAY” key while watching aDVD, a VHS movie or while listening to CD's and these events are verydifferent. Accordingly, remote control 20 will log the context of thekey pressed, i.e., “play DVD”, “play VHS”, or “play CD”.

It is contemplated that the stored log of events need not only containkey press events and any other event of interest can also be logged andstored. For example, remote control 20 can include a touch pad (notshown) input device in addition to, or instead of, keypad 28 and“gestures” input with such a touch pad can be logged and stored, as cantheir meaning and/or context.

As remote control 20 stores a representation of the state of the devicesit is controlling, most relevant information about the system of devicescontrolled by remote control 20 will be available (or discernable) fromthe log. For example, the channel on a television being watched by auser can be directly stored in the log, or can be determined from otherentries in the log (television was on station 4 but the user pressed the“Channel UP” button three times, so the television is now on channel 7),as can the volume level, the display settings (color balance,brightness, contrast, etc.) and this can allow configuration utility 56to perform a significant amount of analysis of the user's use of remotecontrol 20.

The log of events is stored in non volatile memory 36 and is uploaded toconfiguration utility 56 at an appropriate time. Preferably, the storageof logged events in remote control 20 is achieved by a circular buffersuch that, if the memory available for storing the logged events isexceeded before the information is uploaded, the newest stored loggedevents merely overwrite the oldest stored logged events rather thancause an error or overwrite other contents of non-volatile memory 36.Alternatively, but less desirable, once the memory available for storingthe log has been filled, further logging of events can be terminateduntil the existing log has been uploaded. If network connection 48 is awireless link, then remote control 20 can automatically transfer the logof stored events at appropriate intervals, such as when each eventoccurs, after a defined period of time has passed since the lasttransfer or when the size of the log of events reaches a preset size,etc.

Remote control 20 can also operate to prompt the user, on display 32 forexample, to connect remote control 20 to network connection 48 to allowuploading of the logged information either after a specified time of useof remote control 20 has elapsed (for example once a week) or when theamount of memory in non-volatile memory 36 storing the logging info hasreached a pre-selected level (for example 80% of the memory availablefor logging data), etc.

Alternatively, configuration utility 56 can prompt the user of remotecontrol 20, at appropriate intervals, to connect remote control 20 toallow uploading of the logged data. It is contemplated that, as part ofthe set up of a user account with configuration utility 56, a user willprovide contact information such as a valid email address. In this case,configuration utility 56 can email a prompt to the user to connect theirremote control 20 to network connection 48 to allow uploading of thestored events.

It is further contemplated that if remote control 20 is connected toconfiguration utility 56 via network connection 48 for any reason, suchas configuring remote control 20 to work with a new device added by theuser to the devices to be controlled with remote control 20, the loggedevents will be uploaded to the remote configuration utility.

Each time the logged events are uploaded to configuration utility 56,configuration utility 56 can analyze the events for one or more patternsof interest in the logged events and can initiate a dialog with theuser, via the web page or other user interface associated withconfiguration utility 56, with respect to the identified patterns ofinterest. To this end, configuration utility 56 includes an analysismodule 64 (which may be a hardware module, a software module, a firmwaremodule or the like configured to execute one or more analysis functions)to examine the stored log of events. The implementation of analysismodule 64 is not particularly limited and can be achieved in a varietyof manners, as will be apparent to those of skill in the art.

For example, in a simple implementation, analysis module 64 can beconstructed as a simple parsing and/or pattern matching program. In apresently preferred, but more complex, implementation analysis module 64can employ advanced analysis techniques including, without limitation,neural networks, fuzzy logic and expert systems.

For example, during a prior session with configuration utility 56, theuser can have responded to a prompt from configuration utility 56 suchthat remote control 20 operates the user's system of devices to employthe television set's audio capabilities for sound when watchingtelevision programs, rather than the surround sound system. Analysismodule 64 of configuration utility 56 can note a pattern of interestwhere, in actual use, when the user watches a television program, theyfrequently manually employ remote control 20 to activate the surroundsound system.

In such a case, configuration utility 56 can prompt the user as towhether they would like to have the surround sound system used as thedefault audio system when watching television programs. If the userresponds that they do not want to change the configuration to have thesurround sound system as the default audio system for watchingtelevision, then configuration utility 56 will not change theconfiguration of remote control 20. If desired by the user, thisdecision can be stored in a user preferences file stored byconfiguration utility 56 so that the user will not be asked thisquestion again, or will not be asked it within a predefined time period(e.g., three months) and a prompt to this effect can be displayed to theuser.

Conversely, if the user responds to the prompt that they now would likethe surround sound system to be the default audio system when viewingtelevision programs, configuration utility 56 can construct an amendedconfiguration data set for remote control 20 and can download thatconfiguration data set to remote control 20 to effect the desired changein how the system of the user's devices is operated by remote control 20so that the surround sound system will be the default audio system forwatching television programs.

While it is presently preferred that the user be prompted to accept asuggested change to the configuration of remote control 20, the presentinvention is not so limited and if desired, configuration utility 56 canautomatically effect all changes, or a subset of changes, withoutprompting the user.

It is contemplated that more advanced behaviors can be employed byconfiguration utility 56. For example, in the television audioconfiguration example given above, if the user responds to the promptregarding changing the default audio system for television viewing toindicate that they wish the default system to remain the televisionset's audio system, configuration utility 56 can next prompt the user asto whether they would like a function to change the audio system fromthe television set's audio system to the surround sound system to beassigned to one of the “soft” keys on remote control 20 duringtelevision viewing.

If the user responds affirmatively to this prompt, configuration utility56 can modify the configuration data set fro remote control 20 suchthat, when remote control 20 is being used to watch a televisionprogram, one of the soft keys of remote control 20 will operate as atoggle to change the audio system employed with the television programbetween the television set's audio system and the surround sound system.In such as case, an appropriate prompt for the soft key will bedisplayed on display 32 and that prompt can change with the state of thefunction. For example, the prompt can be “Change to Surround Sound” whenthe television set audio system is in use and can be changed to “Changeto Television Audio System” when the surround sound system is in use.

Examples of other patterns of interest that can be recognized byanalysis module 64 of configuration utility 56 can include, withoutlimitation:

(a) time-based patterns such as recognizing that the user regularlyactivates the backlight function for keypad 28 and display 32 of remotecontrol 20 when watching movies. In such a case, configuration utility56 can prompt the user as to whether they would like the time for whichthe backlight remains illuminated to be increased when they are watchingmovies and can update the configuration data set for remote control 20accordingly;

(b) use-based patterns such as recognizing that the user regularly usesa typically obscure command which is, by default, on a sub-menu ofremote control 20, and thus requires multiple keys to be depressed toaccess that command. In such a case, configuration utility 56 can promptthe user as to whether they would like that command to be placed on asoft key on a main menu, for easier access. If all the soft keys forthat main menu are already in use, configuration utility 56 can promptthe user as to which other function assigned to a soft key the userwould be willing to replace. In this latter case, analysis module 64 ofconfiguration utility 56 can suggest to the user replacing the functionassigned to a soft key which is least often used by the user; and

(c) source-based patterns such as recognizing that the user typicallyemploys the surround sound system for audio when viewing televisionprograms on a particular channel, or range of channels (e.g., pay TVmovie channels, etc.). In such a case, configuration utility 56 canprompt the user as to whether they would like the surround sound systemto be the default audio system when viewing one of these channels and,if the user agrees, configuration utility 56 can modify theconfiguration data set accordingly so that the default audio system isthe surround sound system when viewing one of the identified channelsand is the television set's audio system when viewing other channels.

It is also contemplated that more sophisticated patterns can berecognized. For example, similar to the above-mentioned exampleregarding the use of the surround sound system or the television set'saudio system when watching television programs, the analysis module 64of configuration utility 56 can recognize that the user always uses thesurround sound system to watch a television program on channel 5 between9:00 PM and 10:00 PM on Tuesdays, but uses the television set's audiosystem at all other times.

In such a case, configuration utility 56 can prompt the user as towhether they would like remote control 20 to automatically switch to thesurround sound system for viewing television programs on this channel atthis time, but use the television set's audio system at all other times.If the user responds affirmatively, configuration utility 56 canappropriately amend the configuration data set and download the amendedconfiguration data set to remote control 20 to obtain the desiredfunctionality.

Similarly, it is contemplated that analysis module 64 can detect theabsence of a previously noted pattern. For example, analysis module 64can determine that the user has not watched the above-mentioned programon channel 5 on Tuesdays for several weeks and configuration utility 56can prompt the user as to whether they would like to remove thepreviously added specific surround sound configuration for this channel.If the user responds affirmatively, then configuration utility 56 cancreate an appropriately amended configuration data set and download itto remote control 20 to remove this specific functionality.

While in each of the examples above, the user is prompted as to whetherthey desired a change to be made to the configuration of remote control20, the present invention is not so limited and it is contemplated thatchanges which are deemed necessary or desired by configuration utility56 can be effected without reference to the user.

It is further contemplated that the present invention can be employed toassist in the initial configuration and/or set up of remote control 20and the consumer electronics devices and other devices to be controlledby remote control 20 and/or to troubleshoot problems which may occurduring such set up and configuration. Specifically, as part of theinitial configuration of remote control 20 to operate one or more of thedevices of a user, an initial configuration data set is created anddownloaded by configuration utility 56. Using remote control 20 withthis initial configuration data set, the user can attempt to operatethose devices.

If a problem occurs, or if an unexpected result is obtained, the usercan press a “help” key (either a soft key or a dedicated key) on theremote. Once the help button has been pressed, remote control 20 canexecute a troubleshooting routine included with the configuration dataset wherein a series of prompts are displayed to the user and the user'sresponses, and any other the keys pressed by the user, are logged.

For example, the user may have a device, such as a television set, forwhich different command sets were employed by the manufacturer atdifferent times. In such a case, the configuration utility can load aportion, in this example the “Power ON” command, of each of the multiplecommand sets from device database 54 into remote control 20, with one ofthe sets being selected for first use. The user can then be prompted byremote control 20 to use remote control 20 to turn the television set onwith an appropriately identified soft key and remote control 20 will usethe “Power ON” command from the first one of the possible command setswhen that soft key is pressed.

Once the user has pressed the soft key on remote control 20 to turn thetelevision set on, remote control 20 will display a prompt on display 32asking the user if the set came on. If the user presses the keycorresponding to “yes” in response to this prompt, remote control 20will prompt the user to reconnect remote control 20 to networkconnection 48 and analysis module 64 will examine the log to determinethe first command set is the required one and configuration utility 56will create an appropriate configuration data set for remote control 20.

If the user presses a key corresponding “no” to indicate that thetelevision set did not turn on, then remote control 20 can display aprompt on display 32 to have the user press another soft key to use the“Power ON” command from another possible command set to try to turn onthe television set. The user is again prompted as to whether the desiredresult was obtained and the process can continue until the correct setis identified and remote control 20 is connected to configurationutility 56 to have the appropriate configuration data set constructedfor it and downloaded into it.

As will be apparent, a wide range of other troubleshooting activitiescan be performed with remote control 20 through the combination oflogging of events at remote control 20, providing appropriate prompts tothe user via display 32 and recording responses from the user enteredvia keypad 28. For example, a user of remote control 20 may volunteer toverify that the information in device database 52 regarding one of thedevices the user has is correct and complete. In a normaltroubleshooting and/or installation process, configuration utility 56will only use/exercise the actual functions and inputs that are relevantto the system the user has. For example, the user's television set mayhave a dedicated input for a satellite receiver, but the user does nothave such a satellite receiver and thus the commands to operate thatinput are not included in the configuration data set executed by remotecontrol 20.

In contrast, if the user volunteers to verify the data stored at database 56 for his television set, configuration utility 56 can download a“full exercise” configuration data set which remote control 20 will useto test all of the features and functions of the television set. This“full exercise” configuration data set can be interactive, prompting theuser as to whether particular functions and/or features have beenproperly set by remote control 20. Each response entered by the user islogged and stored for forwarding to the configuration utility 56, asdescribed above and can be used by configuration utility 56 to alter thecontents of device database 52 by either updating the data storedtherein, or flagging the data as being suspect.

If the user indicates that a function or feature did not operate asexpected, the “full exercise” configuration data set can have remotecontrol 20 prompt the user to operate the OEM remote control that camewith the television set to perform the function or feature that remotecontrol 20 could not achieve. Remote control 20 can then capture, withcommand signal receiver 42, the command signals issued by the OEM remoteto achieve the desired function or feature. The captured signals arethen logged and stored and are forwarded to configuration utility 56which can analyze the captured signals and add or replace them in devicedatabase 52. Similarly, device database 52 can have be missing one ormore commands for a device and a configuration data set can be loadedinto a remote control 20 of a user who has that device in order to havethe user allow control signal receiver 42 to receive the missingcommands from the OEM remote.

While the description above implies that analysis module 64 is locatedwith configuration utility 56 and device database 52, it is contemplatedthat, if remote control 20 is connected to network 60 via a personalcomputer or other computing device, analysis module 64 can be locatedwithin such computing device for privacy concerns or any other reason.In such a case, the results of the analysis by analysis module 64 willbe forwarded to configuration utility 56 via network 60, but thespecific log data need not be.

Another embodiment of a remote control in accordance the presentinvention is indicated generally at 100 in FIG. 3. In this Figure, likecomponents to those shown in FIGS. 1 and 2 are indicated with likereference numbers. With remote control 20, described above, devicedatabase 52, configuration utility 56 and analysis module 64 are locatedat a remote location, where they can be used by a variety of remotes,principally to reduce the cost of manufacturing remote control 20,although other advantages can also be obtained. It is contemplated that,if manufacturing costs are not of over-riding concern, these functionscan be included within remote 100, as illustrated in FIG. 3.

In remote 100, device database 64 can be a non-volatile memory, such asFlash ROM, or can be a disc drive similar to those available for use inembedded devices, such as the Apple iPod™. Configuration utility 56 andanalysis module 64 can be suitable programs executed by microprocessor24. Remote 100 can still be equipped with a network interface controller44 to connect to a network connection 48 and it is contemplated thatnetwork connection 48 can be used, from time to time, to update thecontents of device database 52 and/or configuration utility 56 andanalysis module 64 from a remote update source.

FIG. 4 is a schematic diagram of a remote control system 110 inaccordance with another embodiment of present invention. Remote controlsystem 110 includes a first remote control 115 and a second remotecontrol 120. Remote control 115 may be configured similarly to remotecontrol 20 and/or remote control 100 described above in detail. Remotecontrol 120 may be configured to receive remote control commands fromremote control 115, and transmit the remote control commands to one ormore devices to be controlled (e.g., TV, video recorder, video player,sound equipment, set top box, etc.).

To elaborate, remote control 120 may include a first receiver 125, asecond receiver 130, a first transmitter 135, a second transmitter 140,a processor 142, and a memory 145. Remote control 120 may furtherinclude an internal power supply 147, or may be coupled to an externalpower supply (not shown). According to one embodiment, remote control120 includes a keypad 150 and a display 155.

As discussed briefly above, the second remote control 120 is configuredto receive a set of commands transmitted by the first remote control115, and in turn transmit the set of commands to one or more devices tobe controlled. A set as referred to herein includes one or moreelements. The second remote control, via its first receiver 125, may beconfigured to receive the set of commands transmitted by the firstremote control 115, and, via the second transmitter 140, transmit theset of commands to one or more devices to be controlled. The firstreceiver 125 may be an RF receiver, an IR receiver, an ultrasonicreceiver or the like. The second transmitter 140 may be an RFtransmitter, an IR transmitter, an ultrasonic transmitter or the likeconfigured to operate according to a variety of transmission protocols,such as Home RF, Bluetooth, a proprietary transmission protocol or thelike.

The second remote control's processor 142 may be configured to processthe set of received commands in “real time” for transmission to thedevices to be controlled, or the process may store the set of commandsin memory 145 for processing and subsequent transfer. For example, theprocessor might be configured to process the set of received commands tochange the format of these commands, e.g., from an IR format to an RFformat or the like.

According to one embodiment, the second remote control is configured toreceive, store, calculate, and/or update the operating states of thedevices to be controlled. The second remote control may be configured toperform such operations in lieu of the first remote control performingsuch operations, or in addition to the first remote control performingsuch operations. The second remote control 120 may be receive, store,calculate, and/or update the states of the controlled devices similarlyto remote control 20 and/or remote control 100 (described above indetail). For example, the second remote control 120 may be configured toreceive state information for the devices to be controlled from a userwho keys the states into second remote control via keypad 150.Alternatively, the second remote control may be configured to receivethe operating state information from the devices to be controlled, forexample, via the second receiver 130. The second receiver 130 may beconfigured to receive the state information in response to a pollingrequest issued by the first and/or second remote control to the devicesto be controlled. The polling request may be issued to the devices to becontrolled at the request of a user via the first remote control or thesecond remote control (e.g., via keypad 150). Alternatively, the pollingrequest may be issued at the initiation of one of the remote controls.For example, the polling request may be issued periodically (e.g., at 30minute intervals thereafter, at 1 hour intervals thereafter or the like)by one of the remote controls. According to one embodiment, the secondremote control might also be configured to receive the state informationfrom the first remote control and/or provide state information to thefirst remote control. The second receiver 130 might be an IR receiver,an RF receiver, an ultrasonic receiver or the like. According to oneembodiment, the first receiver and the second receiver may be a singlereceiver.

The second remote control may be configured to issue commands to thedevices to be controlled based on the set of commands received from thefirst remote control and the states (e.g., stored in memory 145) of oneor more devices to be controlled. The second remote control may beconfigured to operate similarly to remote control 20 and/or remotecontrol 100 to control the devices to be controlled based on the statesof these devices. Moreover, the second remote control may be configuredto update and store the states of one or more devices to be controlledbased on the state information previously stored in memory 145, andbased on the commands transmitted from the second remote control to thedevices to be controlled.

According to one embodiment, the second remote control may be configuredto store one or more commands issued by the first remote control priorto transmitting the commands to the devices to be controlled. Forexample, if the first remote control transmits a number of controlssignal associated with a macro, the second remote control may beconfigured to accumulate the commands in memory 145, and then determinea set of commands to transmit to the devices to be controlled based onthe state information for these devices stored in memory. This issometimes referred to in the art as “blasting” commands or sending a“burst” of commands (or simply a “burst”). As such, the second remotecontrol is sometimes referred to as a “blaster” or a “blaster box.”According to one embodiment, the first remote control is a handhelddevice and the second remote control is a blaster box, which mightinclude a computing device, such as a personal computer, a set top boxor the like.

FIG. 5 is a schematic diagram of a remote control system 110′ inaccordance with another embodiment of present invention. Remote controlsystem 110′ differs from remote control system 110 in that the secondremote control 120′ is configured to communicate with the devices to becontrolled via a hardwire interface 185. Otherwise, remote controlsystem 110′ is configured to operate substantially similar to remotecontrol system 110.

FIG. 6 is a schematic diagram of a remote control system 110″ inaccordance with another embodiment of present invention. Remote controlsystem 110″ differs from remote control system 110 and 110′ in that thesecond remote control 120″ includes the second transmitter 140, thesecond receiver 140, and the hardwire interface 185. The second remotecontrol may be configured to transmit commands and receive stateinformation via one or both the second transmitter, the second receiver,and/or the hardwire interface. Otherwise, remote control system 110″ isconfigured to operate substantially similar to remote control system110.

FIG. 7 is a schematic diagram of a remote control system 200 accordingto another embodiment of the present invention. Remote control system200 includes a plurality of remote controls 205. The remote controls maybe configured to transfer commands to and receive commands from eachother and/or the one or more devices to be controlled. Alternatively,the remote controls may provide a control hierarchy wherein the firstremote control 205 a, transfers a command to a second remote control 205b, that transfers the command to another remote control (e.g., 205 n) inthe hierarchy that in turn transfers the command to one or more devicesto be controlled. One or more of the remote controls may transmit adifferent command from the command received. For example, one or more ofthe remote control may be state based remote control that might transfera different command from the command received based on the stateinformation (described above). For example, the first remote control 205a might be a hand held remote control, computer (e.g., a web enabled PC)that is configured to transfer command to the second remote control 205b that might be a handheld remote control, an IR repeater, an RFrepeater, an ultrasonic repeater, a light repeater, a computer (e.g., aweb enabled PC), the blaster box or the like. The second remote control205 b might be configured to transfer the received command or anothercommand (e.g., that is determined based on local state information) to athird remote control (e.g., remote control 205 n) that in turn isconfigured to command one or more devices to be controlled.Alternatively, any of the devices in the hierarchy may be configured totransfer commands to another remote and to the devices to be controlled.

For example, the first remote control 205 a might be a hand held remotecontrol that is configured to transfer command to the second remotecontrol 205 b that might be an IR repeater, an RF repeater, anultrasonic repeater, a light repeater, a computer, the blaster box orthe like. According to an embodiment in which the second remote controlis a computer, the second remote control may be configured to collectcommands from one or more remotes and organize the commands in view ofresident information (e.g., state information for the devices to becontrolled) and issue one or more commands to the third remote control.The third remote control might be the blaster box (described above) ormight include a plurality of blaster boxes configured to control thedevices.

Embodiments of the present invention provides a method and system foradaptively configuring a remote control. The system and method cananalyze a log of events, maintained by the remote, which indicates howthe remote and the devices it controls are used by a user and can thensuggest alternative configurations of the remote to the user. The rangeand type of alternative configurations is not particularly limited andcan include changing which devices are employed for various useractivities and/or how those activities are performed, the placement andhierarchy of commands in a menu tree and/or troubleshooting and set upconfigurations.

The above-described embodiments of the invention are intended to beexamples of the present invention and alterations and modifications maybe effected thereto, by those of skill in the art, without departingfrom the scope of the invention which is defined solely by the claimsappended hereto.

1-21. (canceled)
 22. A method of modifying configuration data used tooperate a user device including a touch screen, a processor and acommunications module, the method comprising: presenting, via theprocessor, selectable commands to a user on the touchscreen of thedevice based on a first configuration data set stored in the userdevice; storing, via the processor, a log of user-initiated events andcontextual information related to user selection of the commands;analyzing the log of user-initiated events and contextual informationstored by the user device to identify one or more patterns of interestin the use of the user device; and at least one of modifying the firstconfiguration data set or creating a second configuration data set tooperate the user device based at least in part on the one or moreidentified patterns of interest.
 23. The method of claim 22, furthercomprising, in response to the analyzing of the log of user-initiatedevents and contextual information, executing an interactive dialoguewith the user that allows the user to choose whether to implement asuggested change in the operation of the user device, wherein the atleast one of modifying the first configuration data set or creating asecond configuration data set to operate the user device is furtherbased at least in part on the user's choice on whether to implement thesuggested change in the operation of the user device.
 24. The method ofclaim 23, wherein the interactive dialogue with the user is effected viaa web page displayed to the user.
 25. The method of claim 23, whereinthe interactive dialogue with the user is effected via the touchscreenof the user device.
 26. The method of claim 22, wherein the user deviceis configured to control at least one other device, the method furthercomprising: communicating with a device database storing identificationsof devices to be controlled by the user device and command sets forthose other devices; and accessing the command sets for those otherdevices from the device database.
 27. The method of claim 26, whereinthe device database is located in the user device.
 28. The method ofclaim 26, wherein the at least one of modifying the first configurationdata set or creating the second configuration data set includes creatingthe second configuration data set and storing the second configurationdata set in the device database, and the second configuration data setis configured to be available via the device database to a plurality ofremote controls operated by a plurality of users.
 29. The method ofclaim 26, wherein the log of user-initiated events and contextualinformation is configured to be stored in the device database, and isconfigured to be available via the device database to a plurality ofremote controls operated by a plurality of users.
 30. The method ofclaim 22, wherein the analyzing the log of user-initiated events andcontextual information, and the identifying of the one or more patternsof interest in the use of the user device are performed locally on theuser device.
 31. The method of claim 22 wherein the analyzing of the logof user-initiated events and contextual information, and the identifyingof the one or more patterns of interest in the use of the user deviceare performed remotely at a location to which the user device connectsthrough a network.
 32. The method of claim 22 wherein the patterns ofinterest are identified at least in part from logged events from atroubleshooting program previously loaded into the user device, and theat least one of modifying the first configuration data set or creatingthe second configuration data set includes modifying the firstconfiguration data set to correct an identified error in a previousversion of the first configuration data set.
 33. The method of claim 22,wherein the pattern of interest includes at least one of a time-basedpattern, a use-based pattern, or a source-based pattern.
 34. The methodof claim 22, wherein the at least one of modified first configurationdata set or created second configuration data set is configured for useby the processor to display a soft button on the touch screen, andwherein activation of the soft button causes the processor to perform amodified function in accordance with the at least one identified patternof interest.
 35. The method of claim 34, wherein the soft button is fora button in a sub-menu, and the soft button is in a main menu.
 36. Themethod of claim 22, wherein the contextual information includes at leastone of a state of the user device, a state of another device, atimestamp, a media type identifier, a media program identifier, and asub-menu indicator.
 37. The method of claim 22, wherein the contextualinformation includes at least two of a state of the user device, a stateof another device, a timestamp, a media type identifier, a media programidentifier, and a sub-menu indicator, for a particular event.
 38. Themethod of claim 22, further comprising modifying an audio functionassociated with at least one of the selectable commands based at leastin part on the at least one identified pattern of interest.
 39. Themethod of claim 22, further comprising suggesting to the user via thetouch screen changes regarding the selectable commands based on theanalysis of the log of events and contextual information.
 40. The methodof claim 22, wherein the analyzing of the log of user-initiated eventsand contextual information includes recognizing the absence of apreviously identified pattern of interest, and the at least one ofmodifying the first configuration data set or creating the secondconfiguration data set includes at least one of modifying the firstconfiguration data set or creating the second configuration data set tooperate the user device in accordance with the absence of the previouslyidentified pattern of interest.